package utils

import (
	"fmt"
	"log"
	"os"
	"time"

	"github.com/spf13/viper"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
)

// 初始化绑定系统配置
func InitConfig() {
	viper.SetConfigName("app")    //设定配置文件名为app的文件
	viper.AddConfigPath("config") //指定在config的目录下去找配置文件
	err := viper.ReadInConfig()   //将配置项设置到 Viper 实例中
	if err != nil {
		fmt.Println(err)
	}
}

var DB *gorm.DB

// 初始化数据库配置
func InitMysql() {
	//自定义日志模版，打印sql日志
	newLogger := logger.New(
		log.New(os.Stdout, "\r\n", log.LstdFlags),
		logger.Config{
			SlowThreshold: time.Second, //慢SQL阈值
			LogLevel:      logger.Info, //级别
			Colorful:      true,        //颜色
		},
	)
	var myerr error
	DB, myerr = gorm.Open(mysql.Open(viper.GetString("mysql.dns")), &gorm.Config{
		QueryFields:            true, //打印sql
		Logger:                 newLogger,
		SkipDefaultTransaction: true, //默认false，代表开启事务，true为禁用事务
	})
	fmt.Println("连接数据库是否有异常:", myerr)
}
